package cn.tedu.smartos.baseuser.mapper;

import cn.tedu.smartos.baseuser.pojo.dto.UpdatePasswordParam;
import cn.tedu.smartos.baseuser.pojo.dto.UserLoginParam;
import cn.tedu.smartos.baseuser.pojo.dto.UserSaveParam;
import cn.tedu.smartos.baseuser.pojo.entity.User;
import cn.tedu.smartos.baseuser.pojo.vo.UserVO;
import org.springframework.stereotype.Repository;
import org.apache.ibatis.annotations.Param;

@Repository
public interface UserMapper {
    //  根据用户名查询用户是否存在
    Integer findByUsername(String username);
    //  注册成功，插入用户数据
    Integer userInsert(User user);
    //  人脸识别登录
    UserVO loginByFaceToken(String faceToken);
    //  用户名密码登录
    UserVO loginByUsernameAndPassword(UserLoginParam loginParam);
    // 在接口中新增：
    UserVO loginByPhoneAndPassword(UserLoginParam loginParam);
    UserVO loginByEmailAndPassword(UserLoginParam loginParam);

    //   修改密码
    Integer updatePassword(UpdatePasswordParam param);
      // 根据用户名查询用户信息
    User selectByUsername(String username);
    User selectByPrimaryKey(Long userId);
    //   查找手机号
    Integer findByPhone(String phone);

    Integer updateLastLoginTime(Long userId);

    Integer findByIdCard(String idCard);

    Integer updateUserInfo(User user);

    Integer insertElderlyInfo(Long userId);

//   Integer insertFamilyElderlyRelation(@Param("familyUserId") Long familyUserId,
//                                       @Param("elderlyUserId") Long elderlyUserId,
//                                       @Param("relationType")String relationType);

    Integer insertVolunteerInfo(
            @Param("userId") Long userId,
            @Param("volunteerNo") String volunteerNo
    );


}
